#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<cstdio>
#include<algorithm>
#define debug(a) cout<<#a<<"="<<a<<endl;
using namespace std;
const int maxn=2e5+1000;
typedef long long LL;
inline LL read(){LL x=0,f=1;char ch=getchar();	while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;}
int minimumDifference(vector<int>& nums, int k) {
    sort(nums.begin(),nums.end());
    int mx=INT_MAX;
    for(int i=0;i<nums.size();i++)
    {
        int j=i+k-1;
        if(j>nums.size()) continue;
        vector<int>res;
        for(int p=i;p<=j;p++)
        {
            res.push_back(nums[p]);
        }
        mx=min(mx,res.back()-res[0]);
    }
    return mx;
}
int main(void){
    vector<int>nums;int k;
    int n;cin>>n;
    for(int i=0;i<n;i++){
        int x;cin>>x;
        nums.push_back(x);
    }
    cin>>k;
    cout<<minimumDifference(nums,k)<<endl;
   	return 0;
}
